/**
 * 
 */
package compilador.analizadorSintactico.categoriasSintacticas;

import javax.swing.tree.DefaultMutableTreeNode;

import compilador.analizadorLexico.simbolos.SimboloLexico;

/**
 * @author Nolberto Castellanos Rodriguez
 * @author Yurani Alejandra Salamanca Lotero
 *
 * Clase que representa un Paquete 
 */
public class Paquete {

//	-------------------------------------------------------------------------------------------------
//	ATRIBUTOS
//	-------------------------------------------------------------------------------------------------
	
	/**
	 * Atributo que representa el identificador del paquete
	 */
	private  SimboloLexico identificadorPaquete;
	
//	-------------------------------------------------------------------------------------------------
//	CONSTRUCTOR
//	-------------------------------------------------------------------------------------------------	

	/**
	 * Constructor que permite crear un paquete
	 * @param identificadorPaquete. Nombre del paquete
	 */
	public Paquete(SimboloLexico identificadorPaquete)
	{
		this.identificadorPaquete = identificadorPaquete;
	}

//	-------------------------------------------------------------------------------------------------
//	Metodos
//	-------------------------------------------------------------------------------------------------	
	
	
	/**
	 * Metodo que permite agregar hojas al nodo de la clase
	 * @return el nodo de la clase con sus hojas
	 */
	public DefaultMutableTreeNode getArbolVisual(){
		DefaultMutableTreeNode miRaiz =  new  DefaultMutableTreeNode("Paquete");
		miRaiz.add(new DefaultMutableTreeNode(identificadorPaquete.getLexema()));
		
		return miRaiz;
	}
	

	/**
	 * @return
	 */
	public String getJavaCode() {
		return "package "+identificadorPaquete.getLexema()+";";
	}
	
//	-------------------------------------------------------------------------------------------------
//	Getters & Setters
//	-------------------------------------------------------------------------------------------------	
	
	/**
	 * Metodo que nos retorna el valor de identificadorPaquete
	 * @return  identificadorPaquete. Valor retornado
	 */
	public SimboloLexico getIdentificadorPaquete() {
		return identificadorPaquete;
	}

	/**
	 * Metodo que permite asignar el valor de identificadorPaquete
	 * @param identificadorPaquete. Valor a asignar identificadorPaquete
	 */
	public void setIdentificadorPaquete(SimboloLexico identificadorPaquete) {
		this.identificadorPaquete = identificadorPaquete;
	}
	
}